<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>layout 管理系统大布局 - Layui</title>
    <link rel="stylesheet" href="/layui/css/layui.css">
</head>
<body>
<div class="layui-layout layui-layout-admin">
    <div class="layui-header">
        <div class="layui-logo layui-hide-xs layui-bg-black">客户关系管理系统</div>
        <!-- 头部区域（可配合layui 已有的水平导航） -->
        <ul class="layui-nav layui-layout-left">
            <!-- 移动端显示 -->
            <li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-header-event="menuLeft">
                <i class="layui-icon layui-icon-spread-left"></i>
            </li>

            <li class="layui-nav-item layui-hide-xs"><a href="">nav 1</a></li>
            <li class="layui-nav-item layui-hide-xs"><a href="">nav 2</a></li>
            <li class="layui-nav-item layui-hide-xs"><a href="">nav 3</a></li>
            <li class="layui-nav-item">
                <a href="javascript:;">nav groups</a>
                <dl class="layui-nav-child">
                    <dd><a href="">menu 11</a></dd>
                    <dd><a href="">menu 22</a></dd>
                    <dd><a href="">menu 33</a></dd>
                </dl>
            </li>
        </ul>
        <ul class="layui-nav layui-layout-right">
            <li class="layui-nav-item layui-hide layui-show-md-inline-block" id="username">
                <a href="javascript:;">
                    <img src="//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg" class="layui-nav-img">
                    tester
                </a>
                <dl class="layui-nav-child">
                    <dd><a href="">Your Profile</a></dd>
                    <dd><a href="">Settings</a></dd>
                    <dd><a href="">Sign out</a></dd>
                </dl>
            </li>
            <li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
                <a href="javascript:;">
                    <i class="layui-icon layui-icon-more-vertical"></i>
                </a>
            </li>
        </ul>
    </div>
    <script src="jquery/jquery-3.6.0.js">
    </script>
   <!--  动态前端用户登录显示  -->
    <script>
        let jsonobject = sessionStorage.getItem("customer")
        let data = JSON.parse(jsonobject);
        var name = data.customername
        // alert(name)
        $("#username").text(name)
    </script>

    <div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <!-- 左侧导航区域（可配合layui已有的垂直导航） -->
            <ul class="layui-nav layui-nav-tree" lay-filter="test">
                <li class="layui-nav-item layui-nav-itemed">
                    <a class="" href="javascript:;">系统设置</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;">角色管理</a></dd>
                        <dd><a href="javascript:;">组织结构</a></dd>
                        <dd><a href="javascript:;">员工管理</a></dd>
                        <dd><a href="">公告管理</a></dd>
                        <dd><a href="">个人信息</a></dd>
                        <dd><a href="">基础信息</a></dd>
                        <dd><a href="">数据字典</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item">
                    <a href="javascript:;">销售管理</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;">销售计划</a></dd>
                        <dd><a href="javascript:;">销售预测</a></dd>
                        <dd><a href="sale_scroer.html">销售绩效</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item">
                    <a href="javascript:;">机会管理</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;">联系人管理</a></dd>
                        <dd><a href="javascript:;">竞争管理</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item">
                    <a href="">销售分析</a>
                </li>
            </ul>
        </div>
    </div>

    <div class="layui-body">

          <span class="layui-breadcrumb">
           <a href="index.html">首页</a>
           <a><cite>基础管理</cite></a>
           <a><cite>用户管理</cite></a>
        </span>
        <!-- 水平线 -->
        <hr class="layui-bg-blue">

        <!-- 搜索条件 -->
        <fieldset class="layui-elem-field">
            <legend>筛选条件</legend>
            <div class="layui-field-box">
                <div class="layui-form-item layui-form-pane">
                    <label class="layui-form-label">用户名</label>
                    <div class="layui-input-inline">
                        <input type="text" id="search_username" placeholder="请输入用户名" class="layui-input">
                    </div>
                    <label class="layui-form-label">权限</label>
                    <div class="layui-input-inline">
                        <input type="text" id="search_role" placeholder="请输入权限" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item layui-form-pane">
                    <div class="layui-inline">
                        <button class="layui-btn layui-btn-radius layui-btn-warm" id="iReset">重置</button>
                        <button class="layui-btn layui-btn-radius layui-btn-normal" id="searchVal">搜索</button>
                    </div>
                </div>
            </div>
        </fieldset>


        <!--动态销售绩效表格-->
        <table class="layui-hide" id="test" lay-filter="test"></table>
        <!--   ype等于text/html 代表这是一个静态框，等待调用的对应的id的js代码     -->
        <script type="text/html" id="toolbarDemo">
            <div class="layui-btn-container">
                <button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
                <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button>
                <button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>
                <button class="layui-btn layui-btn-sm" lay-event="insertdata">添加销售绩效</button>
            </div>
        </script>
        <!--   添加隐藏框-->
        <script type="text/html" id="insert_form">
            <div class="layui-field-box">
                <div class="layui-form-item layui-form-pane">
                    <label class="layui-form-label">员工姓名</label>
                    <div class="layui-input-inline">
                        <input type="text" id="insert_username" class="layui-input" placeholder="请输入员工姓名">
                    </div>
                </div>

                <div class="layui-form-item layui-form-pane">
                    <label class="layui-form-label">销售等级</label>
                    <div class="layui-input-inline">
                        <input type="text" id="insert_scroer" class="layui-input" placeholder="请输入销售等级">
                    </div>
                </div>
                <div class="layui-form-item layui-form-pane">
                    <label class="layui-form-label">操作人</label>
                    <div class="layui-input-inline">
                        <input type="text" id="insert_operator" class="layui-input" placeholder="请输入操作人">
                    </div>
                </div>

                <div class="layui-form-item layui-form-pane">
                    <label class="layui-form-label">最后操作时间</label>
                    <div class="layui-input-inline">
                        <input type="datetime-local" id="insert_endtime" class="layui-input">
                    </div>
                </div>

                <div class="layui-form-item layui-form-pane">
                    <label class="layui-form-label">部门</label>
                    <div class="layui-input-inline">
                        <select name="body" id="insert_department" class="layui-input" >
                            <option value="1">技术部</option>
                            <option value="2">管理部</option>
                            <option value="3">销售部</option>
                        </select>
                    </div>
                </div>

            </div>
        </script>

        <!--   删除隐藏框 -->
        <script type="text/html" id="barDemo">
            <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
            <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
        </script>

        <!--   修改隐藏框 -->
        <script type="text/html" id="update_form">
            <div class="layui-field-box">
                <div class="layui-form-item layui-form-pane">
                    <label class="layui-form-label">员工姓名</label>
                    <div class="layui-input-inline">
                        <input type="text" id="update_username" class="layui-input" placeholder="请输入员工姓名">
                    </div>
                </div>

                <div class="layui-form-item layui-form-pane">
                    <label class="layui-form-label">销售等级</label>
                    <div class="layui-input-inline">
                        <input type="text" id="update_scroer" class="layui-input" placeholder="请输入销售等级">
                    </div>
                </div>
                <div class="layui-form-item layui-form-pane">
                    <label class="layui-form-label">操作人</label>
                    <div class="layui-input-inline">
                        <input type="text" id="update_operator" class="layui-input" placeholder="请输入操作人">
                    </div>
                </div>

                <div class="layui-form-item layui-form-pane">
                    <label class="layui-form-label">最后操作时间</label>
                    <div class="layui-input-inline">
                        <input type="datetime-local" id="update_endtime" class="layui-input">
                    </div>
                </div>

                <div class="layui-form-item layui-form-pane">
                    <label class="layui-form-label">部门</label>
                    <div class="layui-input-inline">
                        <select name="body" id="update_department" class="layui-input" >
                            <option value="1">技术部</option>
                            <option value="2">管理部</option>
                            <option value="3">销售部</option>
                        </select>
                    </div>
                </div>
            </div>
        </script>
    </div>
    <div class="layui-footer">
        <!-- 底部固定区域 -->
        底部固定区域
    </div>
</div>
<script src="./layui/layui.js" charset="utf-8"></script>
<script src="./jquery/jquery-3.6.0.js" charset="utf-8"></script>
<!--搜索-->
<script>
    //JS
    layui.use(['element', 'layer', 'util'], function(){
        var element = layui.element
            ,layer = layui.layer
            ,util = layui.util
            ,$ = layui.$;

        //头部事件
        util.event('lay-header-event', {
            //左侧菜单事件
            menuLeft: function(othis){
                layer.msg('展开左侧菜单的操作', {icon: 0});
            }
            ,menuRight: function(){
                layer.open({
                    type: 1
                    ,content: '<div style="padding: 15px;">处理右侧面板的操作</div>'
                    ,area: ['260px', '100%']
                    ,offset: 'rt' //右上角
                    ,anim: 5
                    ,shadeClose: true
                });
            }
        });

    });
</script>
<!--增删查改-->
<script
>
    //jquery绑定重置按钮处理事件
    $("#iReset").click(function () {
        $("#search_username").val("")
        $("#search_role").val("")
        tableFlush()
    })

    //jquery绑定搜索按钮处理事件
    $("#searchVal").click(function () {
        let username =  $("#search_username").val()
        let roleName = $("#search_role").val()
        let json = {}
        if(username != null && username != ""){
            json.username = username
        }
        if(roleName != null && roleName != ""){
            json.roleName = roleName
        }
        alert(JSON.stringify(json))
        tableFlush(json)
    })
    function tableFlush(json){
        layui.use('table', function(){
            var table = layui.table;
            // 表单渲染数据
            table.render({
                elem: '#test'//渲染数据到对应的table表单
                ,url:'salescroer/selectSalescroerByLimit'//数据来源接口 json文件路径
                ,where: json
                ,toolbar: '#toolbarDemo' //开启头部工具栏，并为其绑定左侧模板
                ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义，去除该参数即可
                    title: '提示'
                    ,layEvent: 'LAYTABLE_TIPS'
                    ,icon: 'layui-icon-tips'
                }]
                ,title: '用户数据表'//不会在前端页面显示
                ,cols: [[//按行渲染数据
                    {type: 'checkbox', fixed: 'left'}//复选框 并且用fixed：left将这个字段列固定到左边，拖拉时，不移动
                    //field:id 通过id去比对json中的id键值 从而拿取对应值
                    //title:字段列名
                    //width:列的宽度
                    //unresize:true表示横向不可以拉宽列 false表示横向可以拉宽列
                    //sort:true 代表排序 false代表不排序
                    //edit:text 代表可以在前端表格中可以进行修改编写
                    // toolbar: '#barDemo' 指定了该列将包含一个工具栏，用户可以通过点击这些按钮来执行相应的操作。
                    ,{title:'ID', width:100, fixed: 'left', unresize: true, sort: true,templet: function(res){
                            return '<em>'+ res.id +'</em>'
                        }}
                    ,{title:'员工名', width:120, edit: 'text',templet: function(res){
                            return '<em>'+ res.customername +'</em>'
                        }}
                    ,{title:'部门', width:150, edit: 'text', sort: true,templet: function(res){
                            return '<em>'+ res.department.departmentname +'</em>'
                        }}
                    ,{title:'绩效等级', width:120,templet: function(res){
                            return '<em>'+ res.scroer +'</em>'
                        }}
                    ,{title:'最后操作时间', width:120,templet: function(res){
                            return '<em>'+ res.endtime +'</em>'
                        }}
                    ,{title:'操作人', width:120,templet: function(res){
                            return '<em>'+ res.operator +'</em>'
                        }}
                    ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
                ]]
                ,page: true
            });

            //头工具栏事件  新增
            table.on('toolbar(test)', function(obj){
                var checkStatus = table.checkStatus(obj.config.id);
                switch(obj.event){
                    case 'getCheckData':
                        var data = checkStatus.data;
                        var jsonObject = data[0];
                        var username = jsonObject.username;
                        // 因为data是按照id排序 进行的数据json返回 而杜甫位于第一个 因此直接用的data[0].username 而在实际中，这个逻辑是不严谨的

                        break;
                    case 'getCheckLength':
                        var data = checkStatus.data;
                        layer.msg('选中了：'+ data.length + ' 个');
                        break;
                    case 'isAll':
                        layer.msg(checkStatus.isAll ? '全选': '未全选');
                        break;
                    case 'insertdata':
                        layer.open({     // 弹出框处理  模态框
                            type: 1               // 模态框
                            ,title: '新增销售绩效' //显示标题栏
                            ,closeBtn: false //是否右上角有关闭按钮
                            ,area: ['500px','500px']  // 宽和高
                            ,shade: 0.5//透明度
                            ,id: 'LAY_layuipro' //设定一个id，防止重复弹出
                            ,btn: ['新增', '取消']//按钮左边是新增，右边是取消
                            ,btnAlign: 'c'//按钮是否居中 c-->center
                            ,moveType: 1 //拖拽模式，0或者1
                            ,content: $('#insert_form').html()         // 引入自定义表单
                            ,btn1: function(index, layero){            // 这个是新增按钮点击事件
                                // layer.msg("新增按钮执行");
                                let username = $("#insert_username").val();
                                let  scroer = $("#insert_scroer").val();
                                let endtime = $("#insert_endtime").val();
                                let operator = $("#insert_operator").val();
                                let department = $("#insert_department").val();
                                // console.log(username+" "+scroer+" "+endtime+" "+operator+" "+department)
                                //layer.msg("用户名："+username+'  '+"密码："+password)
                                $.ajax({
                                    url:"/salescroer/insert",           // 请求路径
                                    type:"post",                  // 请求的方式，不区分大小写
                                    cache:false,                  // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                                    contentType:"application/json;charset=utf-8",//告诉浏览器当前传递到后端服务的是一个JSON对象
                                    data: JSON.stringify({
                                        customername:username,
                                        scroer:scroer,
                                        departmentId:department,
                                        endtime:endtime,
                                        operator:operator
                                    }),
                                    datatype:"json",        // 返回类型，text文本、html页面、json数据
                                    success:function(response){
                                        // 后端返回响应数据
                                        console.log("返回: " + response);
                                        if(response.code === 200) {
                                            layer.msg("新增用户成功!");
                                            layer.close(index);                         // 关闭当前窗口
                                            tableFlush();
                                        }
                                    },
                                    error:function(response){
                                        console.log("出错返回: " + response);
                                    }
                                });
                            }
                            ,success: function(layero){
                                //弹出窗口之前初始化数据
                            }
                        });
                    //自定义头工具栏右侧图标 - 提示
                    // case 'LAYTABLE_TIPS':
                    //     layer.alert('这是工具栏右侧自定义的一个图标按钮');
                    //     break;
                };
            });

            //监听行工具事件 删除和更改
            table.on('tool(test)', function(obj){
                const data = obj.data;
                if(obj.event === 'del'){
                    layer.confirm('真的删除行么', function(index){
                        $.ajax({
                            url:"/salescroer/deleteById",           // 请求路径
                            type:"post",                  // 请求的方式，不区分大小写
                            cache:false,                  // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                            data:{
                                id:data.id
                            },
                            datatype:"json",        // 返回类型，text文本、html页面、json数据
                            success:function(response){
                                // 后端返回响应数据
                                console.log("返回: " + response);
                                if(response.code === 200) {
                                    layer.msg("删除用户成功!");
                                    layer.close(index);                         // 关闭当前窗口
                                    tableFlush();
                                }
                            },
                            error:function(response){
                                console.log("出错返回: " + response);
                            }
                        });
                    });
                } else if(obj.event === 'edit'){
                    layer.open({     // 弹出框处理  模态框
                        type: 1               // 模态框
                        ,title: '修改信息' //显示标题栏
                        ,closeBtn: false //是否右上角有关闭按钮
                        ,area: ['500px','500px']  // 宽和高
                        ,shade: 0.5//透明度
                        ,id: 'LAY_layuipro' //设定一个id，防止重复弹出
                        ,btn: ['更新', '取消']//按钮左边是新增，右边是取消
                        ,btnAlign: 'c'//按钮是否居中 c-->center
                        ,moveType: 1 //拖拽模式，0或者1
                        ,content: $('#update_form').html()         // 引入自定义表单
                        ,btn1: function(index, layero){            // 这个是新增按钮点击事件
                            // layer.msg("新增按钮执行");
                            let customername = $("#update_username").val();
                            let operator = $("#update_operator").val();
                            let endtime = $("#update_endtime").val();
                            let scroer = $("#update_scroer").val();
                            let departmentId = $("#update_department").val();
                            //layer.msg("用户名："+username+'  '+"密码："+password)
                            $.ajax({
                                url:"/salescroer/update",           // 请求路径
                                type:"post",                  // 请求的方式，不区分大小写
                                cache:false,                  // 关闭缓存，目的是为了避免部分浏览器缓存加载出错(IE)
                                contentType:"application/json;charset=utf-8",//告诉浏览器当前传递到后端服务的是一个JSON对象
                                data: JSON.stringify({
                                    id:data.id,
                                    customername:customername,
                                    operator:operator,
                                    endtime: endtime,
                                    scroer:scroer,
                                    departmentId: departmentId,
                                }),
                                datatype:"json",        // 返回类型，text文本、html页面、json数据
                                success:function(response){
                                    // 后端返回响应数据
                                    console.log("返回: " + response);
                                    if(response.code === 200) {
                                        layer.msg("修改信息成功!");
                                        layer.close(index);                         // 关闭当前窗口
                                        tableFlush();
                                    }
                                },
                                error:function(response){
                                    console.log("出错返回: " + response);
                                }
                            });
                        }
                        ,success: function(layero){
                            customername = $("#update_username").val(data.customername);
                            operator = $("#update_operator").val(data.operator);
                            endtime = $("#update_endtime").val(data.endtime);
                            scroer = $("#update_scroer").val(data.scroer);
                            departmentId = $("#update_department").val(data.departmentId);
                        }
                    });
                }
            });

        });
    }
    tableFlush();

</script>

</body>
</html>